/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package adsreis.com.Controls;


import adsreis.com.Beans.MateriaisBean;
import adsreis.com.Beans.ProdutosBean;
import adsreis.com.acessobd.AcessoMySql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Pauroenriki
 */
public class ProdutosControl {
    PreparedStatement pstm;
    ResultSet rs;
    String cadastraProduto = "INSERT INTO PRODUTOS (CODPRODUTO, DESCRICAO, VLRCUSTO, MO, VLRVENDA, ALTURA, COMPRIMENTO, VLRMETRO)" +
            "VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
    String consultaProduto = "SELECT * FROM PRODUTOS  WHERE DESCRICAO LIKE ? OR CODPRODUTO LIKE ?";
    String alteraProduto = "UPDATE PRODUTOS SET DESCRICAO =?, VLRCUSTO =?, MO=?, VLRVENDA =?, ALTURA=?, COMPRIMENTO=?, VLRMETRO=? WHERE CODPRODUTO =?";
    String excluirProduto = "DELETE FROM PRODUTOS WHERE CODPRODUTO = ?";
    String excluirProdutodet = "DELETE FROM PRODUTOSDET WHERE IDPRODUTO = ?";
    String consultaduplicidadecodigo = "SELECT CODPRODUTO FROM PRODUTOS WHERE CODPRODUTO LIKE ?";
    //String retiraQtdEstoque = "UPDATE MATERIAIS SET QTDESTOQUE=(QTDESTOQUE-?) WHERE CODMATERIAL = ?";
    //String buscaqtd = "SELECT QTDESTOQUE FROM PRODUTOS WHERE CODPRODUTO =?";
    //String incluiQtdEstoque = "UPDATE MATERIAIS SET QTDESTOQUE=(QTDESTOQUE+?) WHERE CODMATERIAL = ?";
    String busca = "SELECT * FROM PRODUTOS WHERE CODPRODUTO LIKE ?";
    public static List<ProdutosBean> produtos1 = new ArrayList<>();
    
    public ProdutosControl(){        
    }
    
    
    
    
    public void cadastrarProduto(ProdutosBean produto){
        try{
           AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(cadastraProduto);
           pstm.setString(1,produto.getCodProduto());
           pstm.setString(2,produto.getDescricao());
           //pstm.setString (3, produto.getMarca());
           pstm.setDouble(3,produto.getVlrCusto());
           pstm.setDouble(4, produto.getMo());
           pstm.setDouble(5,produto.getVlrVenda());
           pstm.setFloat(6,produto.getAltura());
           pstm.setFloat(7,produto.getComprimento());
           pstm.setDouble(8, produto.getVlrMetro());
           //pstm.setInt(6, produto.getQtdEstoque());
           pstm.executeUpdate();
           mysql.desconectar();
           
       } catch (Exception e){
           e.printStackTrace();
       }
    }
    
    
    /* public void retirarQtdEstoque(MateriaisBean produtos){
        try{
            //VendasBean vb = new VendasBean();
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(retiraQtdEstoque);
           pstm.setFloat(1,produtos.getQtdEstoque());
           //pstm.setInt(1,vb.getQtd());
           pstm.setInt(2,produtos.getCodMaterial());
           pstm.executeUpdate();
           mysql.desconectar();           
        }catch (Exception e){
            e.printStackTrace();
    }
    }
    public void incluirQtdEstoque(MateriaisBean produtos){
        try{
            //VendasBean vb = new VendasBean();
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(incluiQtdEstoque);
           pstm.setFloat(1,produtos.getQtdEstoque());
           //pstm.setInt(1,vb.getQtd());
           pstm.setInt(2,produtos.getCodMaterial());
           pstm.executeUpdate();
           mysql.desconectar();           
        }catch (Exception e){
            e.printStackTrace();
    }
    }*/
    
    
    
     public void excluirProdutodet(String codProduto){
        try{
           AcessoMySql mysql = new AcessoMySql();
     pstm = mysql.conectar().prepareStatement(excluirProdutodet); 
           pstm.setString(1, codProduto);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public void excluirProduto(String codProduto){
        try{
           AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(excluirProduto); 
           pstm.setString(1, codProduto);
           pstm.executeUpdate();
           pstm = mysql.conectar().prepareStatement(excluirProdutodet); 
           pstm.setString(1, codProduto);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public List<ProdutosBean> listarProdutos(String descricao){
        List<ProdutosBean> produtos = new ArrayList();
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(consultaProduto);
           pstm.setString(1, descricao);
           pstm.setString(2, descricao);
           rs = pstm.executeQuery();
           ProdutosBean prod;
           while (rs.next()){
               prod = new ProdutosBean();
               prod.setCodProduto(rs.getString("codproduto"));
               prod.setDescricao(rs.getString("descricao"));
               //prod.setMarca(rs.getString("marca"));
               prod.setVlrCusto(rs.getDouble("vlrcusto"));
               prod.setMo(rs.getDouble("mo"));
               prod.setVlrVenda(rs.getDouble("vlrvenda"));
               prod.setAltura(rs.getFloat("altura"));
               prod.setComprimento(rs.getFloat("comprimento"));
               prod.setVlrMetro(rs.getDouble("vlrmetro"));
               
               
              // prod.setQtdEstoque(rs.getInt("qtdestoque"));
               produtos.add(prod);              
           }
           mysql.desconectar();
        }catch (Exception e){
            e.printStackTrace();
        }
        
        
        return produtos;        
    }
    
    
    public Boolean verificarDuplicidadeCodigo(String codbarras) {
        String produtos = null ;
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(consultaduplicidadecodigo);
           pstm.setString(1, codbarras);
           rs = pstm.executeQuery();
           ProdutosBean prod;
           while (rs.next()){
               prod = new ProdutosBean();
               prod.setCodProduto(rs.getString("codproduto"));
               produtos = prod.getCodProduto();    
                
           }
            mysql.desconectar();
           if (produtos.equals(codbarras)){
                    return false;
                }
          
         
           
           
           
           
        }catch (Exception e){
            
            
            return true;
        }
        
        return false;
    }
    
    
    
    public List<ProdutosBean> listarBusca(String codbarras){
        List<ProdutosBean> produtos = new ArrayList();
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(busca);
           pstm.setString(1, codbarras);
           rs = pstm.executeQuery();
           ProdutosBean prod;
           while (rs.next()){
               prod = new ProdutosBean();
               prod.setCodProduto(rs.getString("codproduto"));
               prod.setDescricao(rs.getString("descricao"));
               //prod.setMarca(rs.getString("marca"));
               prod.setVlrCusto(rs.getDouble("vlrcusto"));
               prod.setMo(rs.getDouble("mo"));
               prod.setVlrVenda(rs.getDouble("vlrvenda"));
               prod.setAltura(rs.getFloat("altura"));
               prod.setComprimento(rs.getFloat("comprimento"));
               prod.setVlrMetro(rs.getDouble("vlrmetro"));
              // prod.setQtdEstoque(rs.getInt("qtdestoque"));
               produtos.add(prod);  
               produtos1 = produtos;
           }
           mysql.desconectar();
        }catch (Exception e){
            e.printStackTrace();
        }
        
        
        return produtos1;  
        
        
        
    }
    
    
    
   
    public void alterarProduto(ProdutosBean produtos){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(alteraProduto);
           pstm.setString(1,produtos.getDescricao());
           //pstm.setString(2, produtos.getMarca());
           pstm.setDouble(2,produtos.getVlrCusto());
           pstm.setDouble(3, produtos.getMo());
           pstm.setDouble(4,produtos.getVlrVenda());
           pstm.setFloat(5, produtos.getAltura());
           pstm.setFloat(6,produtos.getComprimento());
           pstm.setDouble(7, produtos.getVlrMetro());
           //pstm.setInt(5,produtos.getQtdEstoque());
           pstm.setString(8,produtos.getCodProduto());
           pstm.executeUpdate();
           mysql.desconectar();           
        }catch (Exception e){
            e.printStackTrace();
    }
    }
    
   /* 
    public ProdutosBean buscarQtd(String id){
        try{
            ProdutosBean pb = new ProdutosBean();
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(buscaqtd);
            pstm.setString(1, id);
            rs = pstm.executeQuery();
            if(rs.next()){
                //pb.setCodProduto(rs.getInt("codproduto"));
           // pb.setQtdEstoque(rs.getInt("qtdestoque"));
            }
            return pb;            
            
            
        }catch (SQLException ex){
            ex.printStackTrace();
        }
        
        return null;
        
    }
    */
    
    
     
    
}
